package rui.game.component;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowListener;

/**
 * @author 赵睿
 */
public class GameFrame extends JFrame {

    public void init(KeyListener listener, MouseMotionListener mouseMotionListener, WindowListener windowListener) {

        globalSettings();
        imageSettings();

        container();

        // 键盘监听器必要代码，添加键盘监听器
        this.addKeyListener(listener);
        //  鼠标监听器必要代码，添加鼠标监听器
        this.addMouseMotionListener(mouseMotionListener);
        this.getContentPane().setForeground(SystemColor.inactiveCaption);
        this.addWindowListener(windowListener);
    }


    private void container() {
        Container con = this.getContentPane(); // 获取当前内容面板
        con.setLayout(null);// 设置内部面板为空
        con.setBackground(SystemColor.activeCaption);// 设置内容面板的背景颜色
    }

    protected void globalSettings() {
        // 设置标题
        this.setTitle("2048");
        // 设置外部边框的大小
        this.setSize(400, 579);
        // 设置外部边框居中
        this.setLocationRelativeTo(this);
        // 设置用户不可调外部边框的大小
        this.setResizable(false);
        // 设置窗口什么动作都不要执行
        this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
    }

    protected void imageSettings() {
        // 为当前窗体更换图标
        // 1. 先根据需要的图标文件，创建ImageIcon类的对象
        ImageIcon im = new ImageIcon("img//128.jpg");
        Image img = im.getImage(); // 转化为Image类型的对象。
        this.setIconImage(img); // 设置当前窗体的图标
    }
}
